# -*- coding: utf-8 -*-

"""
@Datetime: 2019/5/21
@Author: Zhang Yafei
@Description: 多个装饰器
"""


# 定义函数： 完成包裹数据
def makeBold(fn):
    print('进入 makeBold 装饰器 -1')
    def wrapped():
        print("makeBold开始装饰 1")
        return "<b>" + fn() + "</b>"

    return wrapped


# 定义函数： 完成包裹数据
def makeItalic(fn):
    print('进入 makeItalic 装饰器 -2')
    def wrapped():
        print("makeItalic开始装饰 2")
        return "<i>" + fn() + "</i>"

    return wrapped

# 只要python解释器执行到了这个代码,那么就会自动的进行装饰,而不是等到调用的时候才装饰的
@makeBold
@makeItalic
def test():
    print("执行test函数内容逻辑 - 3")
    return "hello world"

print(test())



"""
进入 makeItalic 装饰器 -2
进入 makeBold 装饰器 -1
makeBold开始装饰 1
makeItalic开始装饰 2
执行test函数内容逻辑 - 3
<b><i>hello world</i></b>
"""
